home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
AmigActive 22
/
AACD 22.iso
/
CDTools
/
Viewers
/
Flick
/
flick.doc
< prev
next >
Wrap
Text File
|
1995-05-21
|
13KB
|
388 lines
FLICK FLI-format Animation Viewer v1.5 21 May 1995
--------------------------------------
This program plays FLI/FLC-format bitmapped animation files on any
OCS, ECS or AGA Amiga running OS2.04 or higher. It also works with
the EGS system and CyBERgraphics, and should work with other graphics
cards.
FLI/FLC-format files are produced by Autodesk Animator (Pro) and
Autodesk 3D Studio on a PC, as well as by other programs.
The files in this archive may be distributed anywhere provided they are
unmodified and are not sold for profit.
Ownership and copyright of all files remains with the author:
Peter McGavin, 86 Totara Crescent, Lower Hutt, New Zealand.
e-mail: peterm@maths.grace.cri.nz
FEATURES:
---------
Supports EGS libraries. Uses a ScreenMode requester and runs in a
draggable, overlappable window in this case.
Works with CyBERgraphics and third-party graphics cards with the ROM
option. Uses a ScreenMode requester in this case.
Uses AGA 256-colour screen when AGA is available.
Extra-Half-Brite screen (EHB) allows reasonably good colour
approximation on OCS/ECS Amigas.
16-colour screen (COLOUR4) allows reasonably good colour approximation
on OCS/ECS Amigas in hi-res (and it's usually faster than 256-colour).
Falls back to EHB (lo-res) or COLOUR4 (hi-res) when EGS or AGA are not
available.
Uses an Intuition-friendly Screen. You can flip it to the back, or
drag it down in the usual way, while an animation is playing.
Plays either from ram or directly from disk. Falls back to disk play
when not enough ram is available.
Works with any size or resolution FLI/FLC file.
Supports double-buffering. The latest OS3.0 double-buffering
functions are used if possible.
Uses state-of-the-art chunky-to-planar routines in Amiga native modes.
Achieves typically 90 frames/second in WARP mode on an A4000/040.
Detects and uses Akiko chip on CD32 for typically 40 frames/second.
Uses ASL file-requester.
Runs from either icon or shell. Uses icon tooltypes for options (i.e,
WorkBench Icons/Information... menu item).
Source code is included, so if something doesn't work you can fix it.
OPERATION:
----------
I've tried to make it easy to use in many different ways.
Just double-click the FLICK icon and select an anim to play from the
requester.
Alternatively you can set up project icons for your anims (e.g, with
IconEdit).
Options can be specified either on the commandline or in icon
tooltypes. You can set default tooltypes in the program icon and
override them temporarily with tooltypes in any project icon.
From the SHELL or CLI, the syntax is:
FLICK FILE/M,DISK/S,RAM/S,ONCE/S,COLOUR/S,EHB/S,COLOUR4/S,GREY/S,
EGS/S,ROM/S,DBUF/S,WARP/S,NOAKIKO/S
If you don't specify a file, the file-requester pops up.
You can specify a list of files, separated by spaces. However #?
wildcards don't work.
Options are:
DISK: Plays from disk (i.e, plays while reading).
RAM (default): Plays from RAM (i.e, loads first, then plays).
ONCE: Play once, then quit. (Default is to loop).
COLOUR (default): AGA 8-bitplane 256-colour mode.
EHB: Extra-Half-Brite 6-bitplane mode.
COLOUR4: 4-bitplane 16-colour mode (usually faster).
GREY: 4-bitplane 16-grey-scale mode (usually fastest).
EGS: Use EGS libraries (default when EGS libs are found).
ROM: Uses a ScreenMode requester and WritePixelArray8().
DBUF: Double-buffer. Default is not to double buffer.
WARP: Plays real fast. Default speed is what anim says.
NOAKIKO: Do not use Akiko even if it is available
The options COLOUR, EHB, COLOUR4, GREY and EGS are mutually exclusive.
The ROM and DBUF options have no effect with EGS.
KEYBOARD AND MOUSE CONTROLS
---------------------------
To quit an animation, press ESC, Q, q or CTRL/C, or click the right
mouse button. (In EGS mode, the right mouse button must be clicked
inside the window.) FLICK also stops when it receives a CTRL/C break
signal, e.g, by typing CTRL/C in the Shell window or by using the
AmigaDOS BREAK command.
Keys F1 through F10 can be used to change animation speed as follows:
F1 as fast as possible
F2 60 frames per second
F3 30 frames per second
F4 24 frames per second
F5 15 frames per second
F6 12 frames per second
F7 10 frames per second
F8 5 frames per second
F9 1 frame per second
F10 at the speed specified in the FLI/FLC file
The + and - keys can also be used to speed up and slow down an
animation while it is playing. Each press doubles or halves the
current requested speed.
Note: If FLICK cannot run as fast as the requested speed, you may have
to press - several times before you see any slowdown.
USING EGS LIBRARIES
-------------------
FLICK puts up a ScreenMode reqester and expects you to select an EGS
screenmode, if EGS libraries are installed and no overriding options
are given.
You can skip the requester by defining the environment variable FLICK
as the name of a valid EGS screenmode, e.g, SETENV FLICK "LEGSa:VGA
640x480".
If you use SETENV FLICK DEFAULT, then FLICK tries to use the default
EGS screen. However, FLICK requires an 8-bit EGS screen. FLICK will
fail on a 24-bit EGS screen or anything else.
If FLICK fails to open a window on the selected EGS screen, then FLICK
gives up on EGS and falls back to COLOUR, EHB and COLOUR4 in that
order.
EGS Speed is dependent on the EGS driver installed. A GVP Spectrum
card is very fast. The Amiga AGA driver is very slow. If your EGS
libraries are installed with the AGA driver, use the COLOUR option or
tooltype to request an Amiga native screenmode.
If you have EGS libraries and you want to use an Amiga native mode,
select COLOUR, EHB, COLOUR4 or GREY.
USING CYBERGRAPHICS AND 3RD-PARTY GRAPHICS CARDS
------------------------------------------------
Use the ROM command-line option or the ROM icon tooltype. If you
have EGS libraries installed, then use COLOUR as well.
When you use ROM, FLICK puts up a ScreenMode requester and renders
using WritePixelArray8(). This also prevents FLICK from using a
custom bitmap.
This is known to work well with CyBERgraphics and should also work
with other 3rd-party gfx card systems.
The ROM option makes FLICK 100% RTG friendly.
Note that CyBERgraphics up to version 40.47 does not yet support
double-buffering with OS3.0 ScreenBuffer functions, and so FLICK ROM
DBUF hangs. Use CTRL/C in the Shell window or the AmigaDOS BREAK
command to break out.
OTHER FREELY DISTRIBUTABLE FLI PLAYERS FOR THE AMIGA:
-----------------------------------------------------
Other FLI viewers I know about are:
Flit 1.0 by John Bickers.
AmiFlick v1.05 by Garrick Meeker.
Flip 1.66 by Dominik Tonn.
EGSFlick 1.2 by Frank Neumann
FLIplayers 1.5 by Reinhard Haslbeck (shareware).
MainActor 1.55 by MainConcept, GbR Moenig/Zabel (shareware)
These should all be available on Aminet or orion.etsu.edu. Flip v1.66
is often faster than FLICK v1.5, but it requires AGA. MainActor is a
fully-fledged animation utility which does a lot more than simply
viewing FLI/FLC files.
WHY IS FLICK SO SLOW?
---------------------
Have you tried the WARP option or pressed F1 yet? The default is to
play at the speed defined in the anim file, which is often quite slow.
Have you got EGS libraries installed with the AGA driver? That will
be very slow. Disable EGS (e.g, by moving the EGS monitor icon to
storage and rebooting) or use the COLOUR option or tooltype with
FLICK.
What kind of Amiga do you have? FLICK is significantly faster on
faster Amigas. Fast memory helps a lot too.
What resolution is the FLI/FLC file? 320x200 is up to 5 times faster
than 640x512.
The ROM option or tooltype is slow unless you have a graphics card, in
which case it could be extremely fast.
EGSFlick 1.2 is often faster than FLICK because EGSFlick decompresses
all the frames into RAM first. FLICK saves memory by decompressing on
the fly.
Well actually I think FLICK is quite fast for what it does.
FLI-format is exactly the wrong format for the Amiga. That is,
everything is stored internally in "chunky" format, but the Amiga has
its graphics video-memory arranged in "planar" format. All known
algorithms to convert between chunky and planar format are very, very
slow.
FLICK incorporates several different c2p algorithms optimised for
different situations. All the routines are now CPU based. There are
separate c2p routines optimised for the 68000, 68020, 68040 and Akiko.
All c2p routines attempt to update only parts of the display that
changed since last time.
If you manage to improve the algorithms significantly, or find a
faster one, please let me know.
In EHB, COLOUR4 and GREY modes, FLICK makes an extra translation for
every pixel. In EHB and COLOUR4 modes FLICK performs a long
calculation to recompute the translation table every time the colour
map changes. (Note: FLICK does not recalculate the currently
displayed frame with the new palette, so if the next frame changes
only part of the screen then the part which is unchanged will appear
in the wrong colours. Fortunately this doesn't happen very often, and
it only happens in EHB and COLOUR4 modes.)
If you really want to see a FLI-format or FLC-format file played fast,
convert it to an Amiga anim format first. The shareware program
MainActor is excellent for that. Also AmiFlick can write IFF files,
and some of the commercial anim utilities, like ImageFX, can convert
directly from FLI to anim.
BUGS:
-----
Bugs? What bugs? Oh well, maybe the following can be construed as bugs:
Anims with lots of colour map changes don't play correctly in EHB or GREY.
Can't select multiple files from file requester.
Can't use #? wildcards on commandline.
Stdio output window is ugly.
THANKS:
-------
Thanks to James McCoull for his c2p routines (which I have modified
slightly).
Thanks to Patrick van Logchem, Dominik Tonn, John Bickers and others
for suggestions and testing.
Thanks to Frank Mariak for information about CyBERgraphics.
DISCLAIMER:
-----------
It seems to work for me. Tested on:
A3000 + 40MHz Warp engine + GVP Spectrum EGS & CyBERgraphics
A4000/040
A500 + Mega Midget Racer
CD32 + SX-1
HISTORY:
--------
v1.0 19 Dec 1993
First release.
v1.1 27 Jan 1994
Fixed some minor bugs (missing "break" statements which fortunately didn't
do any harm apart from wasting some memory).
Fixed bug where some structures could be left allocated and asl.library
left open after certain error conditions.
Use V39 Intuition-friendly double-buffering functions when possible.
Added ROM option to use graphics.library WritePixelArray8().
Significantly sped up the chunky2planar routine.
Got FLC-format support working for 640x480 and 480x300 resolutions.
CTRL/C aborts the whole program, not just return to the file requester.
Added 68040-optimised c2p routine.
Added COLOUR4 mode.
Compiled with SAS/C 6.51.
v1.2 19 Feb 1994
Fixed bug where mode did not fall back to COLOUR4 for FLC files on ECS
Amigas.
Worked around SAS/C 6.51 bug in fseek/fread that caused some disk
anims to fail.
Disk-play now reads a frame at a time instead of a chunk at a time.
Improved c2p routine for Chip-only machines by eliminating a mem copy.
Fixed bug where dbuf messages weren't replied to after strange error
conditions.
Added support for FLI/FLC files of any resolution.
Wrote a much faster routine for when only part of the display changes
each frame (and made it the default). This sped up many anims
by a factor of 2 or more.
Added NOCOMPARE and NODBUF options.
v1.3 4 Jan 1995
Changes almost too numerous to list.
Replaced all c2p routines with new, much faster, OCS-friendly ones.
Removed NOCOMPARE option, no longer uses blitter at all.
Added support for EGS libraries, run in a window.
Added + and - keyboard controls.
Default is now single-buffered instead of double-buffered.
Added exact-speed feature and WARP option.
Right-mouse button quits.
Auto-detect and use Akiko chip.
Rewrote some of the chunk decoding routines in assembly.
Added tooltype support.
Greatly sped up code for ROM option.
For ROM option, allocate bitmap in more system friendly way for gfx cards.
Major code restructuring in general.
v1.4 5 Jan 1995
Fixed bug which sometimes caused crashes when double-buffering.
Fixed bug which caused corrupted displays with Akiko and depth < 8.
Added NOAKIKO option (handy for comparing speeds on a CD32).
v1.5 21 May 1995
Added ScreenMode requester when ROM option is used.
Added ScreenMode requester when EGS libraries are used.
Fixed bug that caused FLICK to fail with CyBERgraphics.
Trap CTRL/C in Wait() for safeport and dispport when double-buffering.